The present invention related generally to file systems, and in particular, to virtual machine disk image introspection for storage systems.
Virtual machines in information technology systems often generate input/output (I/O) workloads that comprise small requests with random addresses. Therefore, from the point of performance, streaming throughput is less important than the number of I/O requests per second (IOPS). IOPS intensive workloads are typically highly sensitive to latency. Further, virtual machines perform I/O to disk images, which are effectively file representations of real disks. A disk image can thus be formatted as any guest file system (e.g., EXT3, XFS, NTFS), or any other higher-level structure such as a database (DB). The disk image is stored in a server file system (e.g., GPFS, NFS, EXT3, VMFS, iSCSI) and operations to the disk image are handled by treating the disk image as a typical operating system file. A server file system attempts to optimize I/O requests to the disk image file system without useful knowledge about the structure of the disk image content, resulting in suboptimal I/O latency and throughput. Further, original file system requests are lost, replaced with less predictable I/O requests. This causes data and metadata caching problems and disk layout alignment issues, wherein I/O request to a single block in a misaligned disk image causes two server blocks to be accessed at the server file system.